#region Usings
using System.Collections;
using System.Collections.Generic;
using System.Linq;

using BK.Model;
#endregion

namespace BK.Repositories.Abstract
{
    public interface IRepository
    {
        #region Instance Methods
        void Delete(object entity);
        int DeleteAll();
        IEnumerable GetAll();

        int Count();

        object GetById(int id);

        void Delete(int id);

        void Save(object entity);
        void Save();
        #endregion Instance Methods
    }

    public interface IRepository<TEntity> : IRepository
    {
        #region Instance Methods
        void Delete(TEntity entity);

        new IEnumerable<TEntity> GetAll();

        new TEntity GetById(int id);

        void Save(TEntity entity);
        #endregion Instance Methods
    }
}